From 852ea7ee6b8c627328a1b0d6a41fa6ae6aa586d3 Mon Sep 17 00:00:00 2001 From: Isaku Yamahata Date: Mon, 25 Aug 2008 19:04:37 +0900 Subject: [PATCH] [IA64] fix PAL call in physical mode. Now firmware code is mapped at its own virtual address space which is same to Linux. So the calculation from virutal address to physical address should be same to the linux one. In practice firmware is located in low physical address area so that masking 60 bit instead of 61 bits doesn't make difference. I just checked and with the patch below, xen/arch/ia64/linux-xen/pal.S becomes the same as arch/ia64/kernel/pal.S from linux 2.6.21. Signed-off-by: Simon Horman --- xen/arch/ia64/linux-xen/pal.S | 8 -------- 1 file changed, 8 deletions(-) diff --git a/xen/arch/ia64/linux-xen/pal.S b/xen/arch/ia64/linux-xen/pal.S index 8d8577a9ce..0b533441c3 100644 --- a/xen/arch/ia64/linux-xen/pal.S +++ b/xen/arch/ia64/linux-xen/pal.S @@ -162,11 +162,7 @@ GLOBAL_ENTRY(ia64_pal_call_phys_static) adds r8 = 1f-1b,r8 // calculate return address for call ;; mov loc4=ar.rsc // save RSE configuration -#ifdef XEN - dep.z loc2=loc2,0,60 // convert pal entry point to physical -#else // XEN dep.z loc2=loc2,0,61 // convert pal entry point to physical -#endif // XEN tpa r8=r8 // convert rp to physical ;; mov b7 = loc2 // install target to branch reg @@ -219,11 +215,7 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked) mov loc3 = psr // save psr ;; mov loc4=ar.rsc // save RSE configuration -#ifdef XEN - dep.z loc2=loc2,0,60 // convert pal entry point to physical -#else // XEN dep.z loc2=loc2,0,61 // convert pal entry point to physical -#endif // XEN ;; mov ar.rsc=0 // put RSE in enforced lazy, LE mode movl r16=PAL_PSR_BITS_TO_CLEAR -- 2.30.2